<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
<meta name="theme-color" content="#222">
<meta name="generator" content="Hexo 4.2.1">
  <link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png">
  <link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png">
  <link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png">
  <link rel="mask-icon" href="/images/logo.svg" color="#222">

<link rel="stylesheet" href="/css/main.css">


<link rel="stylesheet" href="/lib/font-awesome/css/font-awesome.min.css">

<script id="hexo-configurations">
    var NexT = window.NexT || {};
    var CONFIG = {"hostname":"yoursite.com","root":"/","scheme":"Gemini","version":"7.8.0","exturl":false,"sidebar":{"position":"left","display":"post","padding":18,"offset":12,"onmobile":false},"copycode":{"enable":false,"show_result":false,"style":null},"back2top":{"enable":true,"sidebar":false,"scrollpercent":false},"bookmark":{"enable":false,"color":"#222","save":"auto"},"fancybox":false,"mediumzoom":false,"lazyload":false,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"algolia":{"hits":{"per_page":10},"labels":{"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}},"localsearch":{"enable":false,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false},"motion":{"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}}};
  </script>

  <meta name="description" content="Linux程序包管理rpm在安装包时需要解决依赖关系，手动解决比较麻烦，所以依赖于前端工具自动解决依赖关系，所以YUM应运而生，最新的为DNF，fedora22引入，CentOS7（安装之后也可以使用）以上可用。 YUM接受命令后，通过配置文件访问源地址，URL（同一资源定位符）； 访问远程服务器主机，服务器提供程序包仓库，放了每一个程序包的名字，版本，依赖关系； (rpm包的户口簿)，分析已安装">
<meta property="og:type" content="article">
<meta property="og:title" content="10.Linux软件包管理yum工具介绍">
<meta property="og:url" content="http://yoursite.com/2020/05/31/10-Linux%E8%BD%AF%E4%BB%B6%E5%8C%85%E7%AE%A1%E7%90%86yum%E5%B7%A5%E5%85%B7%E4%BB%8B%E7%BB%8D/index.html">
<meta property="og:site_name" content="Lcxiao&#39;s blog">
<meta property="og:description" content="Linux程序包管理rpm在安装包时需要解决依赖关系，手动解决比较麻烦，所以依赖于前端工具自动解决依赖关系，所以YUM应运而生，最新的为DNF，fedora22引入，CentOS7（安装之后也可以使用）以上可用。 YUM接受命令后，通过配置文件访问源地址，URL（同一资源定位符）； 访问远程服务器主机，服务器提供程序包仓库，放了每一个程序包的名字，版本，依赖关系； (rpm包的户口簿)，分析已安装">
<meta property="og:locale" content="zh_CN">
<meta property="article:published_time" content="2020-05-31T20:27:17.000Z">
<meta property="article:modified_time" content="2020-06-01T04:30:37.605Z">
<meta property="article:author" content="lcxiao">
<meta name="twitter:card" content="summary">

<link rel="canonical" href="http://yoursite.com/2020/05/31/10-Linux%E8%BD%AF%E4%BB%B6%E5%8C%85%E7%AE%A1%E7%90%86yum%E5%B7%A5%E5%85%B7%E4%BB%8B%E7%BB%8D/">


<script id="page-configurations">
  // https://hexo.io/docs/variables.html
  CONFIG.page = {
    sidebar: "",
    isHome : false,
    isPost : true,
    lang   : 'zh-CN'
  };
</script>

  <title>10.Linux软件包管理yum工具介绍 | Lcxiao's blog</title>
  






  <noscript>
  <style>
  .use-motion .brand,
  .use-motion .menu-item,
  .sidebar-inner,
  .use-motion .post-block,
  .use-motion .pagination,
  .use-motion .comments,
  .use-motion .post-header,
  .use-motion .post-body,
  .use-motion .collection-header { opacity: initial; }

  .use-motion .site-title,
  .use-motion .site-subtitle {
    opacity: initial;
    top: initial;
  }

  .use-motion .logo-line-before i { left: initial; }
  .use-motion .logo-line-after i { right: initial; }
  </style>
</noscript>

<link rel="alternate" href="/atom.xml" title="Lcxiao's blog" type="application/atom+xml">
</head>

<body itemscope itemtype="http://schema.org/WebPage">
  <div class="container use-motion">
    <div class="headband"></div>

    <header class="header" itemscope itemtype="http://schema.org/WPHeader">
      <div class="header-inner"><div class="site-brand-container">
  <div class="site-nav-toggle">
    <div class="toggle" aria-label="切换导航栏">
      <span class="toggle-line toggle-line-first"></span>
      <span class="toggle-line toggle-line-middle"></span>
      <span class="toggle-line toggle-line-last"></span>
    </div>
  </div>

  <div class="site-meta">

    <a href="/" class="brand" rel="start">
      <span class="logo-line-before"><i></i></span>
      <h1 class="site-title">Lcxiao's blog</h1>
      <span class="logo-line-after"><i></i></span>
    </a>
  </div>

  <div class="site-nav-right">
    <div class="toggle popup-trigger">
    </div>
  </div>
</div>




<nav class="site-nav">
  <ul id="menu" class="menu">
        <li class="menu-item menu-item-home">

    <a href="/" rel="section"><i class="fa fa-fw fa-home"></i>首页</a>

  </li>
        <li class="menu-item menu-item-about">

    <a href="/about/" rel="section"><i class="fa fa-fw fa-user"></i>关于</a>

  </li>
        <li class="menu-item menu-item-tags">

    <a href="/tags/" rel="section"><i class="fa fa-fw fa-tags"></i>标签</a>

  </li>
        <li class="menu-item menu-item-categories">

    <a href="/categories/" rel="section"><i class="fa fa-fw fa-th"></i>分类</a>

  </li>
        <li class="menu-item menu-item-archives">

    <a href="/archives/" rel="section"><i class="fa fa-fw fa-archive"></i>归档</a>

  </li>
        <li class="menu-item menu-item-lifestyle">

    <a href="/lifestyle/" rel="section"><i class="fa fa-fw fa-lifestyle"></i>LifeStyle</a>

  </li>
  </ul>
</nav>




</div>
    </header>

    
  <div class="back-to-top">
    <i class="fa fa-arrow-up"></i>
    <span>0%</span>
  </div>


    <main class="main">
      <div class="main-inner">
        <div class="content-wrap">
          

          <div class="content post posts-expand">
            

    
  
  
  <article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
    <link itemprop="mainEntityOfPage" href="http://yoursite.com/2020/05/31/10-Linux%E8%BD%AF%E4%BB%B6%E5%8C%85%E7%AE%A1%E7%90%86yum%E5%B7%A5%E5%85%B7%E4%BB%8B%E7%BB%8D/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="image" content="/images/avatar.gif">
      <meta itemprop="name" content="lcxiao">
      <meta itemprop="description" content="">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="Lcxiao's blog">
    </span>
      <header class="post-header">
        <h1 class="post-title" itemprop="name headline">
          10.Linux软件包管理yum工具介绍
        </h1>

        <div class="post-meta">
            <span class="post-meta-item">
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              <span class="post-meta-item-text">发表于</span>
              

              <time title="创建时间：2020-06-01 04:27:17 / 修改时间：12:30:37" itemprop="dateCreated datePublished" datetime="2020-06-01T04:27:17+08:00">2020-06-01</time>
            </span>

          

        </div>
      </header>

    
    
    
    <div class="post-body" itemprop="articleBody">

      
        <h1 id="Linux程序包管理"><a href="#Linux程序包管理" class="headerlink" title="Linux程序包管理"></a>Linux程序包管理</h1><p>rpm在安装包时需要解决依赖关系，手动解决比较麻烦，所以依赖于前端工具自动解决依赖关系，所以YUM应运而生，最新的为DNF，fedora22引入，CentOS7（安装之后也可以使用）以上可用。</p>
<p>YUM接受命令后，通过配置文件访问源地址，URL（同一资源定位符）；</p>
<p>访问远程服务器主机，服务器提供程序包仓库，放了每一个程序包的名字，版本，依赖关系；</p>
<p>(rpm包的户口簿)，分析已安装的包和未安装的包，然后下载需要下载的包，缓存到本地。安装完之后会删除安装包，但源数据会被缓存本地，以后访问会访问本地的源数据去分析，源数据需要偶尔更新。（每次去请求源数据）</p>
<p>源较多，选择最快的即可；</p>
<p>镜像列表（使用互联网的或者自建仓库）；</p>
<p>将远程的镜像到本地；</p>
<p>YUM依赖于RPM而存在，只是一个前端工具；</p>
<p>FTP、HTTP</p>
<p>CREATEREPO</p>
<p>程序包分组</p>
<p>YUM（Yellowdog Updater, Modified）；是一个基于<a href="https://zh.wikipedia.org/wiki/RPM" target="_blank" rel="noopener">RPM</a>包管理的字符前端软件包管理器。能够从指定的服务器自动下载RPM包并且安装，可以处理依赖性关系，并且一次安装所有依赖的软件包，无须繁琐地一次次下载、安装。被<a href="https://zh.wikipedia.org/wiki/Yellow_Dog_Linux" target="_blank" rel="noopener">Yellow Dog Linux</a>本身，以及<a href="https://zh.wikipedia.org/wiki/Fedora" target="_blank" rel="noopener">Fedora</a>、<a href="https://zh.wikipedia.org/wiki/Red_Hat_Enterprise_Linux" target="_blank" rel="noopener">Red Hat Enterprise Linux</a>采用。</p>
<p>YUM repository：yum repo    /etc/yum.conf</p>
<p>存储了众多rpm包，以及包的相关的元数据文件（放于特定目录下，repodata）；</p>
<p>文件服务器：</p>
<ul>
<li>FTP://</li>
<li>HTTP://</li>
<li>nfs://</li>
<li>file:///</li>
</ul>
<p>yum 客户端：</p>
<ul>
<li>配置文件：<ul>
<li>/etc/yum.conf    ：为所有仓库提供的公共配置</li>
<li>/etc/yum.repos.d/*.repo ：为仓库的指向提供配置</li>
</ul>
</li>
</ul>
<table>
<thead>
<tr>
<th><code>cachedir</code></th>
<th>用于存储下载的软件包的目录。</th>
</tr>
</thead>
<tbody><tr>
<td><code>debuglevel</code></td>
<td>日志记录级别，从0（无）到10（全部）。</td>
</tr>
<tr>
<td><code>exactarch</code></td>
<td>如果设置为1，则仅更新软件包以使用正确的体系结构。</td>
</tr>
<tr>
<td><code>exclude</code></td>
<td>用空格分隔的要从安装或更新中排除的软件包列表，例如： <code>exclude=VirtualBox-4.? kernel*</code>。</td>
</tr>
<tr>
<td><code>gpgcheck</code></td>
<td>如果设置为1，则通过检查GPG签名来验证软件包的真实性。<code>gpgcheck</code>如果软件包是未签名的，则可能需要将其设置 为0，但应注意该软件包可能已被恶意更改。</td>
</tr>
<tr>
<td><code>gpgkey</code></td>
<td>GPG公钥文件的路径名。</td>
</tr>
<tr>
<td><code>installonly_limit</code></td>
<td>任何一个软件包可以安装的最大版本数。</td>
</tr>
<tr>
<td><code>keepcache</code></td>
<td>如果设置为0，请在安装后删除软件包。</td>
</tr>
<tr>
<td><code>logfile</code></td>
<td>yum日志文件的路径名。</td>
</tr>
<tr>
<td><code>obsoletes</code></td>
<td>如果设置为1，则在升级过程中更换过时的软件包。</td>
</tr>
<tr>
<td><code>plugins</code></td>
<td>如果设置为1，则启用扩展<strong>yum</strong>功能的插件。</td>
</tr>
<tr>
<td><code>proxy</code></td>
<td>代理服务器的URL，包括端口号。</td>
</tr>
<tr>
<td><code>proxy_password</code></td>
<td>使用代理服务器进行身份验证的密码。</td>
</tr>
<tr>
<td><code>proxy_username</code></td>
<td>使用代理服务器进行身份验证的用户名。</td>
</tr>
<tr>
<td><code>reposdir</code></td>
<td><strong>yum</strong>应该 在其中查找带有<code>.repo</code> 扩展名的存储库文件的目录。默认目录为 <code>/etc/yum.repos.d</code>。</td>
</tr>
</tbody></table>
<p>仓库的定义：</p>
<ul>
<li>[repositoryID]</li>
<li>name=Some name for this repository</li>
<li>baseurl=url://path/to/repository/</li>
<li>enable={1|0}</li>
<li>gpgcheck={1|0}</li>
<li>gpgkey=URL</li>
<li>enablegroups={1|0}</li>
<li>failovermethod={}</li>
<li>cost=（默认1000）</li>
</ul>
<p>YUM</p>
<ul>
<li>yum repolist ：显示仓库列表，默认仅显示启用的，显示未启用的(yum repolist disabled);</li>
<li>yum list {all | updates|available|installed|glob_exp1}</li>
<li>yum install ：安装程序包,后面直接跟上packagename，一次可安装多个,可选择版本安装，默认安装最新的版本；</li>
<li>yum update ：升级指定程序包</li>
<li>check-update ：检查升级；</li>
<li>info […] ：查看程序包的详细信息；</li>
<li>remove | erase package1 [package2] […] ：卸载包;</li>
<li>provides | whatprovides feature1 [feature2] […] ：查看包提供的特性（可以是某文件）是有哪个程序包提供;</li>
<li>clean [ packages | metadata | expire-cache | rpmdb | plugins | all ] ：清理本地缓存</li>
<li>makecache ：创建缓存；</li>
<li>search string1 [string2] […] ：根据指定的关键字搜索包名及summary信息;</li>
<li>reinstall package1 [package2] […]：重新安装，覆盖的方式安装；</li>
<li>downgrade package1 [package2] […]：降级安装;</li>
<li>deplist package1 [package2] […] ：依赖关系分析；查看指定包所依赖的capabilities；</li>
<li>version [ all | installed | available | group-* | nogroups* | grouplist | groupinfo ] ：查看版本信息；</li>
<li>history    [info|list|packages-list|packages-info|summary|addon-info|redo|undo|roll‐back|new|sync|stats] :查看YUM事务历史；</li>
<li>localinstall rpmfile1 [rpmfile2] […] ：安装本地rpm文件；可使用仓库的依赖关系解决；（已经废弃，直接使用install，update即可）;</li>
<li>groups […] ：包组相关命令；{info | install | list | remove | summary}；groupinfo,groupinstall,groupupdate,groupremove,grouplist;</li>
</ul>
<p>TIPS：YUM可使用新版本的源，不能使用老版本的，比如6.0可使用6.1的，但是不能使用5.9的；</p>
<p>使用本地YUM源</p>
<p>使用本地光盘作为本地yum仓库:</p>
<ol>
<li>挂载光盘至某目录；</li>
<li>创建配置文件；<ul>
<li>[CentOS7]</li>
<li>name=</li>
<li>baseurl=</li>
<li>gpgcheck=</li>
<li>enabled=</li>
</ul>
</li>
</ol>
<p>YUM的命令行命令优先级高于配置文件；命令行选项：</p>
<ul>
<li>–nogpgcheck：禁止进行gpgcheck；</li>
<li>-y ：自动回答yes；</li>
<li>-q ：静默模式；</li>
<li>–disablerepo=repoidglob ：临时禁用此处指定的repo；</li>
<li>–enablerepo=repoidglob ：临时启用此处指定的repo；</li>
<li>–noplugins : 临时禁用所有插件</li>
</ul>
<p>YUM的repo配置文件中可使用的变量；</p>
<ul>
<li>把远程服务器上所有访问路径固定下来，用变量来获取当前版本号，平台架构；</li>
<li>$releaserver ：当前OS的发行版的版本号；</li>
<li>$ARCH ：平台；</li>
<li>$basearch ：基础平台；</li>
<li>$YUM0~YUM9</li>
</ul>
<p>创建YUM仓库</p>
<ul>
<li>必须先安装这个createrepo程序包；</li>
<li>createrepo [option] &lt;directory&gt;</li>
</ul>
<p>程序包编译安装：</p>
<ul>
<li>testapp-Version-release.src.rpm –&gt; 安装后，使用rpmbuild命令制作成二进制格式的rpm包，而后再安装；</li>
<li>源代码 –&gt; 预处理 –&gt; 编译（GCC） –&gt; 汇编 – &gt; 链接 –&gt; 执行</li>
<li>源代码组织格式：<ul>
<li>多文件，文件中的代码之间，可能存在跨文件依赖关系；</li>
<li>C、C++ ：make（Configure –&gt; Makefile.in –&gt; makefile）项目管理工具，依赖编译器去编译程序；</li>
<li>JAVA ：maven</li>
</ul>
</li>
</ul>
<p>编译安装三步骤：</p>
<ul>
<li><p>./configure:</p>
<ol>
<li>通过选项传递参数，指定启用特性、安装路径等、执行时会参考用户的指定以及Makefile.in 文件生成makefile；</li>
<li>检查依赖的外部环境；</li>
</ol>
</li>
<li><p>make</p>
<p>根据makefile文件，构建应用程序；</p>
</li>
<li><p>make install</p>
</li>
</ul>
<p>开发工具：</p>
<ul>
<li>autoconf：结合配置文件生成configure脚本</li>
<li>automake：结合配置文件生成Makefile.in文件</li>
</ul>
<p>建议：安装之前，阅读INSTALL文件，如果没有，阅读README文件；</p>
<p>开源程序源代码的获取：</p>
<ol>
<li>官方网站；官方自建站点</li>
<li>代码托管网站：<ul>
<li>Github</li>
<li>Gitlab</li>
<li>GoogleCode</li>
<li>SourceForge</li>
<li>Gitee 码云</li>
</ul>
</li>
</ol>
<p>C、C++：GCC（GNU C Complier）（早期也被称作CC）</p>
<p>编译C源代码：</p>
<ul>
<li><p>前提要提供开发工具和开发环境；</p>
<ul>
<li>开发工具：make gcc</li>
<li>开发环境：开发库，头文件</li>
<li>glibc：标准库</li>
<li>通过 ”包组“ 提供开发组件：<ul>
<li>CentOS6：Development Tool</li>
<li>CentOS7：Development and Creative Workstation</li>
<li>Debian系列：build-essential</li>
</ul>
</li>
</ul>
</li>
<li><p>第一步：configure脚本</p>
<ul>
<li><p>选项：指定安装位置，指定启用的特性；</p>
</li>
<li><p>–help：获取其支持使用的选项</p>
<ul>
<li><p>安装路径设定：–prefix=/path/to/somewhere ：指定安装位置；</p>
</li>
<li><p>配置文件安装位置：–sysconfdir=/PATH/to/somewhere;</p>
</li>
<li><p>System Types:</p>
</li>
<li><p>Optional features :可选特性；</p>
<ul>
<li>–disable-feature</li>
<li>–enable-feature[=ARG]</li>
</ul>
</li>
<li><p>Optional Packages:可选包</p>
<ul>
<li>–with-PACKAGE[=ARG]</li>
<li>–without-PACKAGE</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><p>make </p>
</li>
<li><p>make install</p>
</li>
</ul>
<p>安装后的配置</p>
<ol>
<li><p>导出二进制程序目录至PATH变量中；</p>
<ul>
<li>编辑/etc/profile.d/NAME.sh<ul>
<li>export PATH=/PATH/TO/BIN:PATH</li>
</ul>
</li>
</ul>
</li>
<li><p>导出库文件路径</p>
<p>编辑/etc/ld.so.conf.d/NAME.conf</p>
<p>添加新的库文件到此处；</p>
<p>让系统重新生成缓存 ldconfig [-v]</p>
</li>
<li><p>导出头文件</p>
<p>ln -sv</p>
</li>
<li><p>导出帮助手册</p>
<p>编辑/etc/man.config</p>
<p>添加一条manpath</p>
</li>
</ol>
<p>练习：</p>
<ol>
<li>YUM的配置和使用：包括yum repository的创建；</li>
<li>编译安装apache 2.2；启动此服务；</li>
<li>程序包管理，rpm、yum、编译</li>
</ol>

    </div>

    
    
    
        

  <div class="followme">
    <p>欢迎关注我的其它发布渠道</p>

    <div class="social-list">

        <div class="social-item">
          <a target="_blank" class="social-link" href="/atom.xml">
            <span class="icon">
              <i class="fa fa-rss"></i>
            </span>

            <span class="label">RSS</span>
          </a>
        </div>
    </div>
  </div>


      <footer class="post-footer">

        


        
    <div class="post-nav">
      <div class="post-nav-item">
    <a href="/2020/05/31/9-%E4%BB%BB%E5%8A%A1%E8%AE%A1%E5%88%92crontab%E5%8F%8A%E4%BC%81%E4%B8%9A%E5%B8%B8%E7%94%A8%E6%93%8D%E4%BD%9C/" rel="prev" title="9.任务计划crontab及企业常用操作">
      <i class="fa fa-chevron-left"></i> 9.任务计划crontab及企业常用操作
    </a></div>
      <div class="post-nav-item">
    <a href="/2020/05/31/11-yum%E5%AE%9E%E6%88%98%E8%BF%9B%E9%98%B6%E5%8F%8Ashell%E8%84%9A%E6%9C%AC%E5%AE%9E%E7%8E%B0%E7%A3%81%E7%9B%98%E7%AE%A1%E7%90%86%E5%AE%9E%E6%88%98/" rel="next" title="11.yum实战进阶及shell脚本实现磁盘管理实战">
      11.yum实战进阶及shell脚本实现磁盘管理实战 <i class="fa fa-chevron-right"></i>
    </a></div>
    </div>
      </footer>
    
  </article>
  
  
  



          </div>
          

<script>
  window.addEventListener('tabs:register', () => {
    let { activeClass } = CONFIG.comments;
    if (CONFIG.comments.storage) {
      activeClass = localStorage.getItem('comments_active') || activeClass;
    }
    if (activeClass) {
      let activeTab = document.querySelector(`a[href="#comment-${activeClass}"]`);
      if (activeTab) {
        activeTab.click();
      }
    }
  });
  if (CONFIG.comments.storage) {
    window.addEventListener('tabs:click', event => {
      if (!event.target.matches('.tabs-comment .tab-content .tab-pane')) return;
      let commentClass = event.target.classList[1];
      localStorage.setItem('comments_active', commentClass);
    });
  }
</script>

        </div>
          
  
  <div class="toggle sidebar-toggle">
    <span class="toggle-line toggle-line-first"></span>
    <span class="toggle-line toggle-line-middle"></span>
    <span class="toggle-line toggle-line-last"></span>
  </div>

  <aside class="sidebar">
    <div class="sidebar-inner">

      <ul class="sidebar-nav motion-element">
        <li class="sidebar-nav-toc">
          文章目录
        </li>
        <li class="sidebar-nav-overview">
          站点概览
        </li>
      </ul>

      <!--noindex-->
      <div class="post-toc-wrap sidebar-panel">
          <div class="post-toc motion-element"><ol class="nav"><li class="nav-item nav-level-1"><a class="nav-link" href="#Linux程序包管理"><span class="nav-number">1.</span> <span class="nav-text">Linux程序包管理</span></a></li></ol></div>
      </div>
      <!--/noindex-->

      <div class="site-overview-wrap sidebar-panel">
        <div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
  <p class="site-author-name" itemprop="name">lcxiao</p>
  <div class="site-description" itemprop="description"></div>
</div>
<div class="site-state-wrap motion-element">
  <nav class="site-state">
      <div class="site-state-item site-state-posts">
          <a href="/archives/">
        
          <span class="site-state-item-count">38</span>
          <span class="site-state-item-name">日志</span>
        </a>
      </div>
      <div class="site-state-item site-state-categories">
        <span class="site-state-item-count">1</span>
        <span class="site-state-item-name">分类</span>
      </div>
      <div class="site-state-item site-state-tags">
            <a href="/tags/">
          
        <span class="site-state-item-count">9</span>
        <span class="site-state-item-name">标签</span></a>
      </div>
  </nav>
</div>


  <div class="links-of-blogroll motion-element">
    <div class="links-of-blogroll-title">
      <i class="fa fa-fw fa-link"></i>
      Links
    </div>
    <ul class="links-of-blogroll-list">
        <li class="links-of-blogroll-item">
          <a href="http://163.com/" title="http:&#x2F;&#x2F;163.com" rel="noopener" target="_blank">163</a>
        </li>
        <li class="links-of-blogroll-item">
          <a href="http://baidu.com/" title="http:&#x2F;&#x2F;baidu.com" rel="noopener" target="_blank">baidu</a>
        </li>
        <li class="links-of-blogroll-item">
          <a href="/dalipan.com" title="dalipan.com">dalipan</a>
        </li>
        <li class="links-of-blogroll-item">
          <a href="https://google.com/" title="https:&#x2F;&#x2F;google.com" rel="noopener" target="_blank">Google</a>
        </li>
    </ul>
  </div>

      </div>

    </div>
  </aside>
  <div id="sidebar-dimmer"></div>


      </div>
    </main>

    <footer class="footer">
      <div class="footer-inner">
        

        

<div class="copyright">
  
  &copy; 
  <span itemprop="copyrightYear">2020</span>
  <span class="with-love">
    <i class="fa fa-user"></i>
  </span>
  <span class="author" itemprop="copyrightHolder">lcxiao</span>
</div>

        








      </div>
    </footer>
  </div>

  
  <script src="/lib/anime.min.js"></script>
  <script src="/lib/velocity/velocity.min.js"></script>
  <script src="/lib/velocity/velocity.ui.min.js"></script>

<script src="/js/utils.js"></script>

<script src="/js/motion.js"></script>


<script src="/js/schemes/pisces.js"></script>


<script src="/js/next-boot.js"></script>




  















  

  

<script src="/live2dw/lib/L2Dwidget.min.js?094cbace49a39548bed64abff5988b05"></script><script>L2Dwidget.init({"log":false,"pluginJsPath":"lib/","pluginModelPath":"assets/","pluginRootPath":"live2dw/","tagMode":false});</script></body>
</html>
